elasticsearch 内网IP拒绝访问

前言

记录安装完elasticsearch服务之后,无法通过192.168.1.111本机内网IP访问的问题,只能通过127.0.0.1本机环回地址访问的解决方案。

现象

[lipanpan@localhost bin]$ curl 'http://192.168.1.111:9200/'
curl: (7) Failed connect to 192.168.1.111:9200; Connection refused

解决方案

修改配置文件【config/elasticsearch.yml】中的network.host。默认只能以127.0.0.1访问。

192.168.1.111可访问但127.0.0.1不行

network.host: 192.168.1.111

都可访问

network.host: 0.0.0.0

network.host 表示只允许指定的IP访问本机elasticsearch服务。因为有些时候本机可能会绑定多个IP地址,例如:本机可以同时绑定192.168.1.111; 10.201.1.25; 以及127.0.0.1环回地址这些,但是我们又想控制服务只能被192.168.1.111访问到,则可以通过这种方式进行配置限定。如果想本机绑定的所有IP都可访问此服务,则可将network.host设置为0.0.0.0。

0.0.0.0 地址

ipv4中,0.0.0.0地址被用于表示一个无效的,未知的或者不可用的目标。

  • 在服务器中,0.0.0.0指的是本机上的所有ipv4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。
  • 在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由时所对应的路由。

参考链接

  1. http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
  2. http://blog.onlycatch.com/post/7e371ca28621